Probability estimation plays an important role in arithmetic coding. A general method is to use a finite-state machine to estimate probabilities. Roughly speaking, a 0 (or 1) encountered for a given class of symbol causes the machine to transit to a new state specifying a lower (or higher, respectively) probability of the value 1, which is then used to code the next symbol from the same class. The state machine has the further benefit of allowing pre-calculated values for various coding parameters to be attached to each probability state.
The International Organization for Standardization/International Electrotechnical Commission (ISO/IEC) Moving Picture Experts Group-4 (MPEG-4) Part 10 Advanced Video Coding (AVC) standard/International Telecommunication Union, Telecommunication Sector (ITU-T) H.264 Recommendation (hereinafter the “MPEG-4 AVC Standard”) assumes that the estimated probabilities of each context model can be represented by a sufficiently limited set of representative values.
The MPEG-4 AVC Standard employs a Context-Based Adaptive Binary Arithmetic Coding (CABAC) framework to code the syntax. CABAC achieves good compression performance through the following: (a) selecting probability models for each syntax element according to the element's context; (b) adapting probability estimates based on local statistics; and (c) using arithmetic coding. The probabilities estimation is only updated after each symbol is encoded.
For CABAC, 64 representative probability values pε[0.01875, 0.5] were derived for the LPS (Least Probable Symbol) by the following recursive equation:
            p      σ        =                            α          ·                      p                          σ              -              1                                      ⁢                                  ⁢        for        ⁢                                  ⁢        all        ⁢                                  ⁢        σ            =      1        ,  2  ,            …      ⁢                          ⁢      63      ⁢                          ⁢      with      ⁢                          ⁢      α        =                                        (                          0.01875              0.5                        )                                1            63                          ≈                  0.95          ⁢                                          ⁢          and          ⁢                                          ⁢                      p            0                              =      0.5        ,      N    =    64.  
The probability estimation is updated after each symbol is encoded. The selection of α and cardinality N is important. The selections represent a compromise between the desire for fast adaptation and the need for a sufficient stable and accurate estimate. In the MPEG-4 AVC Standard, the basic coding unit is a slice. This restricts the probability adaptation such that it cannot exceed the duration of the whole slice encoding process.
The MPEG-4 AVC Standard employs SKIP/Direct mode, which assumes that certain syntax, such as the mode/motion or the coefficient information (or other information), can be inferred from already available decoded information, so we do not need to code the syntax at all. However, in some cases, we find out that this can cause some damage in future coding of the corresponding syntax. One reason might be due to the limitation of the probability estimation process. One possibility is that probability converges too slowly or that the estimation is very unstable.